// // 编译阶段 执行阶段 

// showName();     // 代码文本文件 -> 导入内存 （内存可以申请变量空间） 

// // 代码是顺序执行的

// // JS代码 在编译阶段发生了什么...  JS会将变量声明提升到当前作用域的最顶端

// // 编译时会构建一个全局作用域 即scope对象,该对象会将所有变量放进去    当前代码运行环境 执行上下文 { myName }

// // console.log(myname);    // 执行语句 报错？ 引用错误 undefined   变量提升

// // var myname = '极客';    // 赋值语句, 属于执行阶段  代码如何分拆可以达到效果
// //如下

// var myname;             //编译阶段     myname的值是undefined    JS的类型是由值决定的.
// myname = '极客';        
// console.log(myname)

// // function showName(){
// //     console.log('函数showName被执行了')
// // }

// // 函数表达式 
// var showName = function(){
//     console.log('函数showName被执行了')
// }

showName();
var showName = function(){
    console.log(2)
}
function showName(){
    console.log(1)
}
showName();